package com.java.day13.hashMap;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;


/**
 * 1. put(K key, V value)                  向map集合中添加元素
 * 2. get(Object key)                      从集合中获取元素的值。根据key获取对应value
 * 3. Set<K> keySet()                      获取所有键key,返回Set集合
 * 4. Collection<V> values()               获取所有值value,返回Collection集合
 * 5. Set<Map.Entry<K,V>> entrySet()       获取所有键值对key=value,返回Map的键值对集合
 * 6. boolean containsKey(Object key)      判断是否包含指定的key
 * 7. boolean containsValue(Object value)  判断是否包含指定的value
 * 8. V remove(Object key)                 根据key删除元素
 * 9. int size()                           HashMap中存在多少对键值对
 */
public class HashMapDemo01 {
    public static void main(String[] args) {
        //创建HashMap
        HashMap<String,String> map = new HashMap<>(12);

        //向map集合中添加元素
        map.put("China","中国");
        map.put("American","美国");
        map.put("Japan","日本");
        map.put("France","法国");
        map.put("France","法国!!!");//覆盖原来的键值对

        //从集合中获取元素的值。根据key获取对应value
//        System.out.println(map.get("China"));
//        System.out.println(map.get("American"));
//        System.out.println(map.get("Japan"));
//        System.out.println(map.get("France"));
//        System.out.println(map.get("France"));
//        System.out.println(map.get("F"));//没有找到键,返回null

//        //获取所有键key
//        Set<String> keys = map.keySet();
//        // System.out.println(map.keySet());
//        System.out.println("键:"+keys);

//        //获取所有值value
//        Collection<String> values = map.values();
//        System.out.println("值:"+values);

//        //获取所有键值对key=value
//        Set<Map.Entry<String, String>> entries = map.entrySet();
//        System.out.println("键=值:"+entries);

//        //遍历entries
//        for (Map.Entry<String, String> entry : entries) {
//            System.out.println(entry.getKey()+":"+entry.getValue());
//        }

//        System.out.println("键=值:"+map);

        //map.forEach((k,v)-> System.out.println(k+"="+v));

        //for (Map.Entry<String,String> i:map.entrySet()) {}


        //判断是否包含指定的key
        System.out.println(map.containsKey("Japan"));
        System.out.println(map.containsKey("J"));

        //判断是否包含指定的value
        System.out.println(map.containsValue("中国"));
        System.out.println(map.containsValue("印度"));

        //根据key删除元素
        map.remove("Japan");
        System.out.println(map.get("Japan"));




    }
}
